package pruebasUnitarias.pruebasArmas;

import objetos.aeronaves.Algo42;
import objetos.aeronaves.enemigos.Caza;
import objetos.armas.Torpedera;
import objetos.proyectiles.*;
import org.junit.*;

public class TorpederaTest {
	private Torpedera torpedera, torpederaVacia;
	private Proyectil torpedo;
	private Rastreador rastreador;
	private Adaptable adaptable;
	private Caza caza;
	private Algo42 algo;

	@Before
	public void setUp() {
		caza = new Caza();
		torpedera = new Torpedera(caza, 1, 1, 1);
		torpederaVacia = new Torpedera(caza, 0, 0);
	}

	@Test
	public void disparar() {
		torpedo = torpedera.dispararTorpedo();
		rastreador = torpedera.dispararRastreador(algo);
		adaptable = torpedera.dispararAdaptable();

		Assert.assertFalse(torpedo == null);
		Assert.assertTrue(torpedo.getOrigen() == caza);

		System.out.println("La torpedera dispara torpedos bien");

		Assert.assertFalse(rastreador == null);
		Assert.assertTrue(rastreador.getObjetivo() == algo);
		Assert.assertTrue(rastreador.getOrigen() == caza);

		System.out.println("La torpedera dispara rastreadores bien");

		Assert.assertFalse(adaptable == null);
		Assert.assertTrue(adaptable.getOrigen() == caza);

		System.out.println("La torpedera dispara adaptables bien");
	}

	@Test
	public void disararVacia() {
		torpedo = torpederaVacia.disparar();
		rastreador = torpederaVacia.dispararRastreador(null);

		Assert.assertTrue(torpedo == null);
		Assert.assertTrue(rastreador == null);

		System.out.println("La torpedera no dispara cuando esta vacia");
	}

}
